A virtual disk for a virtual machine (VM) may consist of a collection of files stored on an underlying file system. For example, the virtual disk may contain a metadata file, referred to herein as the “descriptor file,” and at least one data file, referred to herein as the “extent file.” The extent file stores virtual disk data, which is accessible to the VM. The descriptor file contains metadata accessible to the host's core virtualization stack for management of the extent file. For example, the descriptor file points to one or more extent files to indicate which extent files belong to the virtual disk and to provide the layout of a virtual disk. Additionally, the descriptor file may indicate the hierarchy for a virtual disk. For example, if the virtual disk is a linked clone of a base disk, the descriptor file may include a pointer to the base disk or otherwise include an indication that another disk is a parent or base disk for the linked clone.
Virtual disk I/O filters are plug-ins/pluggable code modules that, if applicable, modify intercepted VM I/O requests directed to corresponding virtual disks owned by the VMs. For example, an I/O filter may apply a policy to an intercepted I/O request before the data is read from or written to a disk. Exemplary I/O filter policies include inspection, compression, encryption, replication, and caching of I/O requests.